EPT: utilize GLA->GPA translation known for certain faults
authorJan Beulich <jbeulich@suse.com>
Fri, 29 Aug 2014 10:22:42 +0000 (12:22 +0200)
committerJan Beulich <jbeulich@suse.com>
Fri, 29 Aug 2014 10:22:42 +0000 (12:22 +0200)
commitecb69533582e51999e5d76bce513be870222908f
treecdbcf1421546dbf18763e0b35b6ace66670d1ad5
parent19bb008e393b17ad020b97ab82ad55df4bbe9451
EPT: utilize GLA->GPA translation known for certain faults

Rather than doing the translation ourselves in __hvmemul_{read,write}()
leverage that we know the association for faults other than such having
occurred when translating addresses of page tables.

There is one intentional but not necessarily obvious (and possibly
subtle) adjustment to behavior: __hvmemul_read() no longer blindly
bails on instruction fetches matching the MMIO GVA (the callers of
handle_mmio_with_translation() now control the behavior via the struct
npfec they pass, and it didn't seem right to bail here rather than just
falling through to the unaccelerated path)

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Tim Deegan <tim@xen.org>
xen/arch/x86/hvm/emulate.c
xen/arch/x86/hvm/hvm.c
xen/arch/x86/hvm/io.c
xen/arch/x86/mm/shadow/multi.c
xen/include/asm-x86/hvm/io.h
xen/include/asm-x86/hvm/vcpu.h